This script is Part 2 of the NICHES workflow. In this script, we will

  1. Load the previously-created and saved NICHES data
  2. Clean the data using reasonable thresholds to exclusively look at high-information measurements, wihtout cutting out too much signal
  3. Make quick-and-dirty embeddings of each individual dataset, so that we can begin to get a data-driven sense of where signal is in our data
  1. We will save our output objects, so that we do not need to perfor this step again and so that we can load up a specific object to refine and use for deep analysis, later in Part 3.

Setup Packages

# Require packages
require(Seurat)
require(NICHES)
require(ggplot2)
require(cowplot)
require(dplyr)

Load NICHES data from Part 1

load("~/Library/CloudStorage/GoogleDrive-michasam.raredon@yale.edu/.shortcut-targets-by-id/1VLqBlyzO-Qad5O2kbwXkBRh_1cQho39t/Engineered Lung Paper/Global_Connectomics/global.connectomics.2023-11-11.Robj")

Remind ourselves of the structure of the object

Clean each data set

CTC pre-filter information ranges
p1 <- VlnPlot(global.connectomics$CellToCell$RNA,group.by='orig.ident',c('nFeature_CellToCell'),raster=F,pt.size = 0.1)+ggtitle('Not Imputed')+ylab('nFeature_CellToCell')
p2 <- VlnPlot(global.connectomics$CellToCell$alra,group.by='orig.ident',c('nFeature_CellToCell'),raster=F,pt.size = 0.1)+ggtitle('Imputed')+ylab('nFeature_CellToCell')
png(filename = 'CellToCell_BeforeFiltration.png',width = 12,height = 7,units = 'in',res=300)
plot_grid(p1,p2,nrow=1)
dev.off()
## quartz_off_screen 
##                 2
plot_grid(p1,p2,nrow=1)

Usually we would like to filter at >50 features for Cell-To-Cell and >100 features for the System metrics. But that will cut out basically the entirety of some of the lower information depth samples. The low infomation depth we see in BCL5, BC1P3 and BC1P6 could be a consequence of their not being sequenced as deeply as the others, or it could be biologic. We don’t know yet.

STC pre-filter information ranges
p1 <- VlnPlot(global.connectomics$SystemToCell$RNA,group.by='orig.ident',c('nFeature_SystemToCell'),raster=F,pt.size = 0.1)+ggtitle('Not Imputed')+ylab('nFeature_SystemToCell')
p2 <- VlnPlot(global.connectomics$SystemToCell$alra,group.by='orig.ident',c('nFeature_SystemToCell'),raster=F,pt.size = 0.1)+ggtitle('Imputed')+ylab('nFeature_SystemToCell')
png(filename = 'SystemToCell_BeforeFiltration.png',width = 12,height = 7,units = 'in',res=300)
plot_grid(p1,p2,nrow=1)
dev.off()
## quartz_off_screen 
##                 2
plot_grid(p1,p2,nrow=1)

Same comment here, though here it is even clearer. BCL5 is a serious outlier, with very low information depth. Is this because of sequnecing, or biology? Not fully sure.

The fact that all the autocrine populations are lower here, however, is almost certainly because the lower cellular idveristy is reducing the feature number of individual System level measurements.

CTS pre-filter information ranges
p1 <- VlnPlot(global.connectomics$CellToSystem$RNA,group.by='orig.ident',c('nFeature_CellToSystem'),raster=F,pt.size = 0.1)+ggtitle('Not Imputed')+ylab('nFeature_CellToSystem')
p2 <- VlnPlot(global.connectomics$CellToSystem$alra,group.by='orig.ident',c('nFeature_CellToSystem'),raster=F,pt.size = 0.1)+ggtitle('Imputed')+ylab('nFeature_CellToSystem')
png(filename = 'CellToSystem_BeforeFiltration.png',width = 12,height = 7,units = 'in',res=300)
plot_grid(p1,p2,nrow=1)
dev.off()
## quartz_off_screen 
##                 2
plot_grid(p1,p2,nrow=1)

So, now we need to choose reasonable cleaning thresholds. Very tricky for this specific dataset. We need to be extraordinarily conservative or we risk losing key samples.

We might be forced, because of this, to use the imputed data. But for now, let’s try as a first pass / demonstration:

Apply reasonable thresholds as a starting point
global.connectomics$CellToCell$RNA <- subset(global.connectomics$CellToCell$RNA,nFeature_CellToCell>25)
global.connectomics$CellToCell$alra <- subset(global.connectomics$CellToCell$alra,nFeature_CellToCell>50)
global.connectomics$SystemToCell$RNA <- subset(global.connectomics$SystemToCell$RNA,nFeature_SystemToCell>50)
global.connectomics$SystemToCell$alra <- subset(global.connectomics$SystemToCell$alra,nFeature_SystemToCell>50)
global.connectomics$CellToSystem$RNA <- subset(global.connectomics$CellToSystem$RNA,nFeature_CellToSystem>50)
global.connectomics$CellToSystem$alra <- subset(global.connectomics$CellToSystem$alra,nFeature_CellToSystem>50)

Note that these thresholds are lower than what would be my go-to for most, native tissue datasets. This engineered dataset requires elevated caution at this computational step, so I am reducing the above thresholds as low as I think is reasonable to get data.

CTC post-filter information ranges
p1 <- VlnPlot(global.connectomics$CellToCell$RNA,group.by='orig.ident',c('nFeature_CellToCell'),raster=F,pt.size = 0.1)+ggtitle('Not Imputed')+ylab('nFeature_CellToCell')
p2 <- VlnPlot(global.connectomics$CellToCell$alra,group.by='orig.ident',c('nFeature_CellToCell'),raster=F,pt.size = 0.1)+ggtitle('Imputed')+ylab('nFeature_CellToCell')
png(filename = 'CellToCell_AfterFiltration.png',width = 12,height = 7,units = 'in',res=300)
plot_grid(p1,p2,nrow=1)
dev.off()
## quartz_off_screen 
##                 2
plot_grid(p1,p2,nrow=1)

STC post-filter information ranges
p1 <- VlnPlot(global.connectomics$SystemToCell$RNA,group.by='orig.ident',c('nFeature_SystemToCell'),raster=F,pt.size = 0.1)+ggtitle('Not Imputed')+ylab('nFeature_SystemToCell')
p2 <- VlnPlot(global.connectomics$SystemToCell$alra,group.by='orig.ident',c('nFeature_SystemToCell'),raster=F,pt.size = 0.1)+ggtitle('Imputed')+ylab('nFeature_SystemToCell')
png(filename = 'SystemToCell_AfterFiltration.png',width = 12,height = 7,units = 'in',res=300)
plot_grid(p1,p2,nrow=1)
dev.off()
## quartz_off_screen 
##                 2
plot_grid(p1,p2,nrow=1)

CTS post-filter information ranges
p1 <- VlnPlot(global.connectomics$CellToSystem$RNA,group.by='orig.ident',c('nFeature_CellToSystem'),raster=F,pt.size = 0.1)+ggtitle('Not Imputed')+ylab('nFeature_CellToSystem')
p2 <- VlnPlot(global.connectomics$CellToSystem$alra,group.by='orig.ident',c('nFeature_CellToSystem'),raster=F,pt.size = 0.1)+ggtitle('Imputed')+ylab('nFeature_CellToSystem')
png(filename = 'CellToSystem_AfterFiltration.png',width = 12,height = 7,units = 'in',res=300)
plot_grid(p1,p2,nrow=1)
dev.off()
## quartz_off_screen 
##                 2
plot_grid(p1,p2,nrow=1)

But ya know, the above workflows steps still make me uncomfortable. What about the BASCs, which we know are basically only in the BCL5 condition, and we know have an extraordinary low feature depth? I think we need to be careful here with filtration, or run the risk of carving out the BASC connectivity before we even have had a chnace to look at it.

SO, let’s start over, and not filter any of the NICHES data at all prior to initial visualization. If we want to filter/clean later, we can do so.

Start over, load the data again clean:

load("~/Library/CloudStorage/GoogleDrive-michasam.raredon@yale.edu/.shortcut-targets-by-id/1VLqBlyzO-Qad5O2kbwXkBRh_1cQho39t/Engineered Lung Paper/Global_Connectomics/global.connectomics.2023-10-27.Robj")

Visualize each data set

# Scale
global.connectomics$CellToCell$RNA <- ScaleData(global.connectomics$CellToCell$RNA)
global.connectomics$CellToCell$alra <- ScaleData(global.connectomics$CellToCell$alra)
global.connectomics$SystemToCell$RNA <- ScaleData(global.connectomics$SystemToCell$RNA)
global.connectomics$SystemToCell$alra <- ScaleData(global.connectomics$SystemToCell$alra)
global.connectomics$CellToSystem$RNA <- ScaleData(global.connectomics$CellToSystem$RNA)
global.connectomics$CellToSystem$alra <- ScaleData(global.connectomics$CellToSystem$alra)

Find Variable Features

global.connectomics$CellToCell$RNA <- FindVariableFeatures(global.connectomics$CellToCell$RNA)
global.connectomics$CellToCell$alra <- FindVariableFeatures(global.connectomics$CellToCell$alra)
global.connectomics$SystemToCell$RNA <- FindVariableFeatures(global.connectomics$SystemToCell$RNA)
global.connectomics$SystemToCell$alra <- FindVariableFeatures(global.connectomics$SystemToCell$alra)
global.connectomics$CellToSystem$RNA <- FindVariableFeatures(global.connectomics$CellToSystem$RNA)
global.connectomics$CellToSystem$alra <- FindVariableFeatures(global.connectomics$CellToSystem$alra)

Run PCA

global.connectomics$CellToCell$RNA <- RunPCA(global.connectomics$CellToCell$RNA,npcs = 100)
global.connectomics$CellToCell$alra <- RunPCA(global.connectomics$CellToCell$alra,npcs = 100)
global.connectomics$SystemToCell$RNA <- RunPCA(global.connectomics$SystemToCell$RNA,npcs = 100)
global.connectomics$SystemToCell$alra <- RunPCA(global.connectomics$SystemToCell$alra,npcs = 100)
global.connectomics$CellToSystem$RNA <- RunPCA(global.connectomics$CellToSystem$RNA,npcs = 100)
global.connectomics$CellToSystem$alra <- RunPCA(global.connectomics$CellToSystem$alra,npcs = 100)

Check out PCs

pdf(file='global.connectomics$CellToCell$RNA.PCs.pdf',width=10,height=8)
ElbowPlot(global.connectomics$CellToCell$RNA,ndims = 100)
PCHeatmap(global.connectomics$CellToCell$RNA,cells=200,balanced=T,dims=1:9)
PCHeatmap(global.connectomics$CellToCell$RNA,cells=200,balanced=T,dims=10:18)
PCHeatmap(global.connectomics$CellToCell$RNA,cells=200,balanced=T,dims=19:27)
PCHeatmap(global.connectomics$CellToCell$RNA,cells=200,balanced=T,dims=28:36)
PCHeatmap(global.connectomics$CellToCell$RNA,cells=200,balanced=T,dims=37:45)
PCHeatmap(global.connectomics$CellToCell$RNA,cells=200,balanced=T,dims=46:54)
PCHeatmap(global.connectomics$CellToCell$RNA,cells=200,balanced=T,dims=55:63)
PCHeatmap(global.connectomics$CellToCell$RNA,cells=200,balanced=T,dims=64:72)
PCHeatmap(global.connectomics$CellToCell$RNA,cells=200,balanced=T,dims=73:81)
PCHeatmap(global.connectomics$CellToCell$RNA,cells=200,balanced=T,dims=82:90)
PCHeatmap(global.connectomics$CellToCell$RNA,cells=200,balanced=T,dims=91:99)
dev.off()
## quartz_off_screen 
##                 2
pdf(file='global.connectomics$CellToCell$alra.PCs.pdf',width=10,height=8)
ElbowPlot(global.connectomics$CellToCell$alra,ndims = 100)
PCHeatmap(global.connectomics$CellToCell$alra,cells=200,balanced=T,dims=1:9)
PCHeatmap(global.connectomics$CellToCell$alra,cells=200,balanced=T,dims=10:18)
PCHeatmap(global.connectomics$CellToCell$alra,cells=200,balanced=T,dims=19:27)
PCHeatmap(global.connectomics$CellToCell$alra,cells=200,balanced=T,dims=28:36)
PCHeatmap(global.connectomics$CellToCell$alra,cells=200,balanced=T,dims=37:45)
PCHeatmap(global.connectomics$CellToCell$alra,cells=200,balanced=T,dims=46:54)
PCHeatmap(global.connectomics$CellToCell$alra,cells=200,balanced=T,dims=55:63)
PCHeatmap(global.connectomics$CellToCell$alra,cells=200,balanced=T,dims=64:72)
PCHeatmap(global.connectomics$CellToCell$alra,cells=200,balanced=T,dims=73:81)
PCHeatmap(global.connectomics$CellToCell$alra,cells=200,balanced=T,dims=82:90)
PCHeatmap(global.connectomics$CellToCell$alra,cells=200,balanced=T,dims=91:99)
dev.off()
## quartz_off_screen 
##                 2
pdf(file='global.connectomics$SystemToCell$RNA.PCs.pdf',width=10,height=8)
ElbowPlot(global.connectomics$SystemToCell$RNA,ndims = 100)
PCHeatmap(global.connectomics$SystemToCell$RNA,cells=200,balanced=T,dims=1:9)
PCHeatmap(global.connectomics$SystemToCell$RNA,cells=200,balanced=T,dims=10:18)
PCHeatmap(global.connectomics$SystemToCell$RNA,cells=200,balanced=T,dims=19:27)
PCHeatmap(global.connectomics$SystemToCell$RNA,cells=200,balanced=T,dims=28:36)
PCHeatmap(global.connectomics$SystemToCell$RNA,cells=200,balanced=T,dims=37:45)
PCHeatmap(global.connectomics$SystemToCell$RNA,cells=200,balanced=T,dims=46:54)
PCHeatmap(global.connectomics$SystemToCell$RNA,cells=200,balanced=T,dims=55:63)
PCHeatmap(global.connectomics$SystemToCell$RNA,cells=200,balanced=T,dims=64:72)
PCHeatmap(global.connectomics$SystemToCell$RNA,cells=200,balanced=T,dims=73:81)
PCHeatmap(global.connectomics$SystemToCell$RNA,cells=200,balanced=T,dims=82:90)
PCHeatmap(global.connectomics$SystemToCell$RNA,cells=200,balanced=T,dims=91:99)
dev.off()
## quartz_off_screen 
##                 2
pdf(file='global.connectomics$SystemToCell$alra.PCs.pdf',width=10,height=8)
ElbowPlot(global.connectomics$SystemToCell$alra,ndims = 100)
PCHeatmap(global.connectomics$SystemToCell$alra,cells=200,balanced=T,dims=1:9)
PCHeatmap(global.connectomics$SystemToCell$alra,cells=200,balanced=T,dims=10:18)
PCHeatmap(global.connectomics$SystemToCell$alra,cells=200,balanced=T,dims=19:27)
PCHeatmap(global.connectomics$SystemToCell$alra,cells=200,balanced=T,dims=28:36)
PCHeatmap(global.connectomics$SystemToCell$alra,cells=200,balanced=T,dims=37:45)
PCHeatmap(global.connectomics$SystemToCell$alra,cells=200,balanced=T,dims=46:54)
PCHeatmap(global.connectomics$SystemToCell$alra,cells=200,balanced=T,dims=55:63)
PCHeatmap(global.connectomics$SystemToCell$alra,cells=200,balanced=T,dims=64:72)
PCHeatmap(global.connectomics$SystemToCell$alra,cells=200,balanced=T,dims=73:81)
PCHeatmap(global.connectomics$SystemToCell$alra,cells=200,balanced=T,dims=82:90)
PCHeatmap(global.connectomics$SystemToCell$alra,cells=200,balanced=T,dims=91:99)
dev.off()
## quartz_off_screen 
##                 2
pdf(file='global.connectomics$CellToSystem$RNA.PCs.pdf',width=10,height=8)
ElbowPlot(global.connectomics$CellToSystem$RNA,ndims = 100)
PCHeatmap(global.connectomics$CellToSystem$RNA,cells=200,balanced=T,dims=1:9)
PCHeatmap(global.connectomics$CellToSystem$RNA,cells=200,balanced=T,dims=10:18)
PCHeatmap(global.connectomics$CellToSystem$RNA,cells=200,balanced=T,dims=19:27)
PCHeatmap(global.connectomics$CellToSystem$RNA,cells=200,balanced=T,dims=28:36)
PCHeatmap(global.connectomics$CellToSystem$RNA,cells=200,balanced=T,dims=37:45)
PCHeatmap(global.connectomics$CellToSystem$RNA,cells=200,balanced=T,dims=46:54)
PCHeatmap(global.connectomics$CellToSystem$RNA,cells=200,balanced=T,dims=55:63)
PCHeatmap(global.connectomics$CellToSystem$RNA,cells=200,balanced=T,dims=64:72)
PCHeatmap(global.connectomics$CellToSystem$RNA,cells=200,balanced=T,dims=73:81)
PCHeatmap(global.connectomics$CellToSystem$RNA,cells=200,balanced=T,dims=82:90)
PCHeatmap(global.connectomics$CellToSystem$RNA,cells=200,balanced=T,dims=91:99)
dev.off()
## quartz_off_screen 
##                 2
pdf(file='global.connectomics$CellToSystem$alra.PCs.pdf',width=10,height=8)
ElbowPlot(global.connectomics$CellToSystem$alra,ndims = 100)
PCHeatmap(global.connectomics$CellToSystem$alra,cells=200,balanced=T,dims=1:9)
PCHeatmap(global.connectomics$CellToSystem$alra,cells=200,balanced=T,dims=10:18)
PCHeatmap(global.connectomics$CellToSystem$alra,cells=200,balanced=T,dims=19:27)
PCHeatmap(global.connectomics$CellToSystem$alra,cells=200,balanced=T,dims=28:36)
PCHeatmap(global.connectomics$CellToSystem$alra,cells=200,balanced=T,dims=37:45)
PCHeatmap(global.connectomics$CellToSystem$alra,cells=200,balanced=T,dims=46:54)
PCHeatmap(global.connectomics$CellToSystem$alra,cells=200,balanced=T,dims=55:63)
PCHeatmap(global.connectomics$CellToSystem$alra,cells=200,balanced=T,dims=64:72)
PCHeatmap(global.connectomics$CellToSystem$alra,cells=200,balanced=T,dims=73:81)
PCHeatmap(global.connectomics$CellToSystem$alra,cells=200,balanced=T,dims=82:90)
PCHeatmap(global.connectomics$CellToSystem$alra,cells=200,balanced=T,dims=91:99)
dev.off()
## quartz_off_screen 
##                 2

Run UMAP

global.connectomics$CellToCell$RNA <- RunUMAP(global.connectomics$CellToCell$RNA,dims = 1:75)
global.connectomics$CellToCell$alra <- RunUMAP(global.connectomics$CellToCell$alra,dims = 1:75)
global.connectomics$SystemToCell$RNA <- RunUMAP(global.connectomics$SystemToCell$RNA,dims = 1:75)
global.connectomics$SystemToCell$alra <- RunUMAP(global.connectomics$SystemToCell$alra,dims = 1:75)
global.connectomics$CellToSystem$RNA <- RunUMAP(global.connectomics$CellToSystem$RNA,dims = 1:75)
global.connectomics$CellToSystem$alra <- RunUMAP(global.connectomics$CellToSystem$alra,dims = 1:75)

Define colors

load("~/Library/CloudStorage/GoogleDrive-michasam.raredon@yale.edu/.shortcut-targets-by-id/1VLqBlyzO-Qad5O2kbwXkBRh_1cQho39t/Engineered Lung Paper/Allie's Object Filtration/Final Objects/all.color_palettes_2.R")
color_pals
## $sample_colors
##     BC1P3     BC1P6    RLMVEC      FB13      FB14       BAL      BCL5     BCEC2 
## "#9E0142" "#B91F48" "#D53E4F" "#E45549" "#F46D43" "#FDAE61" "#FEE08B" "#FEEFA4" 
##      BEF1      BEF2      BEF3     BEF12     BEF14     BEF15     BEFM1     BEFM2 
## "#ABDDA4" "#88CFA4" "#66C2A5" "#46B8DA" "#40A6D1" "#3B95C8" "#08519C" "#08306B" 
##     BEFM4     BEFM5     BEFM6    TXP3_L    TXP4_L 
## "#AD8FB8" "#A367B8" "#993FB8" "#BDBDBD" "#737373" 
## 
## $dataset_colors
##     Start      Mono        Co     Tri_E     Tri_L    Quad_E    Quad_L     TXP_L 
## "#B91F48" "#F88D51" "#FEEFA4" "#88CFA4" "#40A6D1" "#08306B" "#993FB8" "#BDBDBD" 
## 
## $class_colors
##  Epithelium Endothelium  Mesenchyme      Immune 
##   "#75C359"   "#5B9ADA"   "#E64955"   "#8949CA" 
## 
## $niche_colors
##      Start        Eng     Native 
##  "#FDAE61"  "#08306B" "darkgrey" 
## 
## $starteng_colors
##     Start       Eng 
## "#FDAE61" "#08306B" 
## 
## $epi
##   Basal-like     ATI-like Transitional      Cycling         BASC 
##    "#66C2A5"    "#FC8D62"    "#8DA0CB"    "#E78AC3"    "#A6D854" 
## 
## $endo
##         Microvascular Cycling_Microvascular             Lymphatic 
##             "#66C2A5"             "#FC8D62"             "#8DA0CB" 
##     Cycling_Lymphatic            Progenitor 
##             "#E78AC3"             "#A6D854" 
## 
## $mes
##   Alveolar    Cycling Remodeling   Aberrant  Pericytes 
##  "#66C2A5"  "#FC8D62"  "#E78AC3"  "#8DA0CB"  "#A6D854" 
## 
## $imm
##     Alveolar      Cycling Interstitial 
##    "#66C2A5"    "#8DA0CB"    "#FC8D62" 
## 
## $imm2
##           B         ILC     Mac_Alv Mac_Alv_Pro     Mac_Int      Mo_Act 
##   "#7570B3"   "#B3B3B3"   "#66C2A5"   "#8DA0CB"   "#FC8D62"   "#FFD92F" 
##       Mo_NC      Neutro      Plasma           T 
##   "#E7298A"   "#E78AC3"   "#A6D854"   "#66A61E"
color_pals$type_colors <- c(color_pals$epi,color_pals$endo,color_pals$mes,color_pals$imm)
names(color_pals$type_colors) <-c("Basal-like","ATI-like","Transitional","Cycling_Epi","BASC",
                                  "Microvascular","Cycling_Microvascular","Lymphatic","Cycling_Lymphatic","Endo_Progenitor",
                                  "Alveolar_Fibroblast","Cycling_Mes","Remodeling_Fibroblast","Aberrant_Fibroblast","Pericytes",
                                  "Alveolar_Macrophage","Cycling_Alveolar_Macrophage","Interstitial_Macrophage")
color_pals$type_colors <- c(color_pals$type_colors,'blue')
names(color_pals$type_colors) <-c("Basal-like","ATI-like","Transitional","Cycling_Epi","BASC",
                                  "Microvascular","Cycling_Microvascular","Lymphatic","Cycling_Lymphatic","Endo_Progenitor",
                                  "Alveolar_Fibroblast","Cycling_Mes","Remodeling_Fibroblast","Aberrant_Fibroblast","Pericytes",
                                  "Alveolar_Macrophage_Naive","Cycling_Alveolar_Macrophage","Interstitial_Macrophage",'Alveolar_Macrophage_Activated')

#### ABOVE DOES NOT WORK, NEEDS ADJUSTMENT
## For now:

color_pals$type_colors <- c('#A40606','#9CFFFA','#B0DB43','#9C528B','#2F6690',
                                '#946846','#F1C40F','green','#0F0326','#E65F5C','#14591D','#726DA8',
                                'yellow','purple','blue','red','orange','darkgrey','magenta')
names(color_pals$type_colors) <- unique(global.connectomics$CellToCell$alra$SendingType)

Plot UMAPS with relevant metadata

CTC

CellToCell RNA
p1 <- DimPlot(global.connectomics$CellToCell$RNA,group.by = 'Dataset2.Sending',cols=color_pals$dataset_colors,raster=F,shuffle = T)
p2 <- DimPlot(global.connectomics$CellToCell$RNA,group.by = 'orig.ident',cols = color_pals$sample_colors, raster=F,shuffle = T)
p3 <- DimPlot(global.connectomics$CellToCell$RNA,group.by = 'class.Sending',cols = color_pals$class_colors,raster=F,shuffle = T)
p4 <- DimPlot(global.connectomics$CellToCell$RNA,group.by = 'class.Receiving',cols = color_pals$class_colors,raster=F,shuffle = T)
p5 <- DimPlot(global.connectomics$CellToCell$RNA,group.by = 'SendingType',cols = color_pals$type_colors,raster=F,shuffle = T)
p6 <- DimPlot(global.connectomics$CellToCell$RNA,group.by = 'ReceivingType',cols = color_pals$type_colors,raster=F,shuffle = T)

pdf(file='global.connectomics$CellToCell$RNA.UMAPS.pdf',width=20,height=10)
print(plot_grid(p1,p2,p3,p4,p5,p6))
dev.off()
## quartz_off_screen 
##                 2
plot_grid(p1,p2,p3,p4,p5,p6)

CellToCell Imputed
p1 <- DimPlot(global.connectomics$CellToCell$alra,group.by = 'Dataset2.Sending',cols=color_pals$dataset_colors,raster=F,shuffle = T)
p2 <- DimPlot(global.connectomics$CellToCell$alra,group.by = 'orig.ident',cols = color_pals$sample_colors,raster=F,shuffle = T)
p3 <- DimPlot(global.connectomics$CellToCell$alra,group.by = 'class.Sending',cols = color_pals$class_colors,raster=F,shuffle = T)
p4 <- DimPlot(global.connectomics$CellToCell$alra,group.by = 'class.Receiving',cols = color_pals$class_colors,raster=F,shuffle = T)
p5 <- DimPlot(global.connectomics$CellToCell$alra,group.by = 'SendingType',cols = color_pals$type_colors,raster=F,shuffle = T)
p6 <- DimPlot(global.connectomics$CellToCell$alra,group.by = 'ReceivingType',cols = color_pals$type_colors,raster=F,shuffle = T)

pdf(file='global.connectomics$CellToCell$alra.UMAPS.pdf',width=20,height=10)
print(plot_grid(p1,p2,p3,p4,p5,p6))
dev.off()
## quartz_off_screen 
##                 2
plot_grid(p1,p2,p3,p4,p5,p6)

STC

p1 <- DimPlot(global.connectomics$SystemToCell$RNA,group.by = 'Dataset2',cols=color_pals$dataset_colors,raster=F,shuffle = T)
p2 <- DimPlot(global.connectomics$SystemToCell$RNA,group.by = 'orig.ident',cols = color_pals$sample_colors,raster=F,shuffle = T)
p3 <- DimPlot(global.connectomics$SystemToCell$RNA,group.by = 'class',cols = color_pals$class_colors,raster=F,shuffle = T)
p4 <- DimPlot(global.connectomics$SystemToCell$RNA,group.by = 'ReceivingType',cols = color_pals$type_colors,raster=F,shuffle = T)
pdf(file='global.connectomics$SystemToCell$RNA.UMAPS.pdf',width=10,height=8)
print(plot_grid(p1,p2,p3,p4))
dev.off()
## quartz_off_screen 
##                 2
plot_grid(p1,p2,p3,p4)

p1 <- DimPlot(global.connectomics$SystemToCell$alra,group.by = 'Dataset2',cols=color_pals$dataset_colors,raster=F,shuffle = T)
p2 <- DimPlot(global.connectomics$SystemToCell$alra,group.by = 'orig.ident',cols = color_pals$sample_colors,raster=F,shuffle = T)
p3 <- DimPlot(global.connectomics$SystemToCell$alra,group.by = 'class',cols = color_pals$class_colors,raster=F,shuffle = T)
p4 <- DimPlot(global.connectomics$SystemToCell$alra,group.by = 'ReceivingType',cols = color_pals$type_colors,raster=F,shuffle = T)
pdf(file='global.connectomics$SystemToCell$alra.UMAPS.pdf',width=10,height=8)
print(plot_grid(p1,p2,p3,p4))
dev.off()
## quartz_off_screen 
##                 2
plot_grid(p1,p2,p3,p4)

CTS

p1 <- DimPlot(global.connectomics$CellToSystem$RNA,group.by = 'Dataset2',cols=color_pals$dataset_colors,raster=F,shuffle = T)
p2 <- DimPlot(global.connectomics$CellToSystem$RNA,group.by = 'orig.ident',cols = color_pals$sample_colors,raster=F,shuffle = T)
p3 <- DimPlot(global.connectomics$CellToSystem$RNA,group.by = 'class',cols = color_pals$class_colors,raster=F,shuffle = T)
p4 <- DimPlot(global.connectomics$CellToSystem$RNA,group.by = 'SendingType',cols = color_pals$type_colors,raster=F,shuffle = T)
pdf(file='global.connectomics$CellToSystem$RNA.UMAPS.pdf',width=10,height=8)
print(plot_grid(p1,p2,p3,p4))
dev.off()
## quartz_off_screen 
##                 2
plot_grid(p1,p2,p3,p4)

p1 <- DimPlot(global.connectomics$CellToSystem$alra,group.by = 'Dataset2',cols=color_pals$dataset_colors,raster=F,shuffle = T)
p2 <- DimPlot(global.connectomics$CellToSystem$alra,group.by = 'orig.ident',cols = color_pals$sample_colors,raster=F,shuffle = T)
p3 <- DimPlot(global.connectomics$CellToSystem$alra,group.by = 'class',cols = color_pals$class_colors,raster=F,shuffle = T)
p4 <- DimPlot(global.connectomics$CellToSystem$alra,group.by = 'SendingType',cols = color_pals$type_colors,raster=F,shuffle = T)
pdf(file='global.connectomics$CellToSystem$alra.UMAPS.pdf',width=10,height=8)
print(plot_grid(p1,p2,p3,p4))
dev.off()
## quartz_off_screen 
##                 2
plot_grid(p1,p2,p3,p4)